package cn.scau.server.mapper;

import cn.scau.server.dto.EmpDeptDTO;
import cn.scau.server.dto.EmpPositionPageDTO;
import cn.scau.server.pojo.Emp;
import cn.scau.server.vo.*;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.lettuce.core.dynamic.annotation.Param;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author 代码不跑我先跑
 * @since 2025-03-30
 */
public interface EmpMapper extends BaseMapper<Emp> {
    //分页查询
    public IPage<EmpDeptQueryVO> pageEmp(@Param("page") IPage<EmpDeptQueryVO> page, @Param("empDeptDTO") EmpDeptDTO empDeptDTO) throws Exception;
    //查询员工基本资料、部门、职位
    public EmpDeptPosQueryVO queryEmpDeptPosByEmp(@Param("empId") String empId);
    //提取前端session要保存的字段：emp_id,is_leader,dept_id,dept_name,pos_id,pos_name
    public EmpPermissionVO getEmpPermission(@Param("empId") String empId);
    //分页查询员工职位信息
    public IPage<EmpPosDeptVO> pagePosition(@Param("page") IPage<EmpPosDeptVO> page, @Param("empPositionPageDTO") EmpPositionPageDTO empPositionPageDTO) throws Exception;
    //增加新员工的基本信息和部门
    int insertEmployee(EmpPosCreateVO empPosCreateVO);
    int insertEmpPos(@Param("empId") String empId, @Param("deptId") Integer deptId);
}
